Vegetation Index · Basic Reflectance

DVI – Difference Vegetation Index

DVI is one of the simplest vegetation indices, based on the absolute difference between Near-InfraRed (NIR) and Red reflectance. It highlights vegetation vigor and biomass.

1. Scientific Definition

The Difference Vegetation Index (DVI) is a linear vegetation index that measures the absolute difference in reflectance between NIR (high in vegetation) and Red (low in vegetation).

Formula

DVI = NIR − Red Range depends on reflectance scale

Interpretation

DVI ValueInterpretation
≈ 0Non-vegetated surfaces
0 – 0.2Sparse or stressed vegetation
0.2 – 0.5Moderate vegetation
> 0.5Dense & healthy vegetation

Applications

  • Biomass estimation
  • Vegetation vigor mapping
  • Simple vegetation discrimination
  • Used as building block for many advanced indices

2. Required Data

Sentinel-2 Bands

  • NIR: B8
  • Red: B4

Good Practices

  • Use surface reflectance (S2_SR)
  • Mask clouds & shadows using QA bands
  • Normalize values when comparing multi-date images

Suggested Palette

[ "#440154", "#3b528b", "#21908c", "#5dc963", "#fde725" ]

3. Google Earth Engine Code – DVI


// DVI using Sentinel-2
// Formula: DVI = NIR - Red

var roi = geometry;
Map.centerObject(roi, 11);

// Load Sentinel-2 SR
var s2 = ee.ImageCollection("COPERNICUS/S2_SR")
  .filterBounds(roi)
  .filterDate("2023-01-01", "2023-12-31")
  .filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 20))
  .select(["B4", "B8"]); // Red, NIR

var img = s2.median().clip(roi);

// DVI
var dvi = img.expression(
  "NIR - RED",
  {
    "NIR": img.select("B8"),
    "RED": img.select("B4")
  }
).rename("DVI");

var vis = {
  min: 0,
  max: 0.8,
  palette: ["#440154","#3b528b","#21908c","#5dc963","#fde725"]
};

Map.addLayer(dvi, vis, "DVI");

// Export
Export.image.toDrive({
  image: dvi,
  description: "DVI_Export",
  fileNamePrefix: "DVI",
  region: roi,
  scale: 10,
  crs: "EPSG:4326",
  maxPixels: 1e13
});